feat: Add example configuration with docker-compose local lab#157
feat: Add example configuration with docker-compose local lab#157
Conversation
- Replace Jiraiya character with Uchiha Sasuke in Claude agent - Add example configuration files for both Kiro and Claude agents - Add EXAMPLE.md with Docker Compose usage instructions - Update .gitignore to track example configuration files
chaodu-agent
left a comment
There was a problem hiding this comment.
🟡 Needs Rebase — Good onboarding example, but stale (22 days) with merge conflicts and several issues to address.
Baseline Check (Step 0)
| Field | Value |
|---|---|
| State | OPEN |
| Mergeable | CONFLICTING |
| Created | 2026-04-09 (22 days ago) |
| Last commit | 2026-04-09 |
| Author | @neilkuan |
| Changes | +352 / -1 |
| Labels | closing-soon |
Main has: No example/ directory, no docker-compose setup. config.toml.example exists with all agent presets documented. docs/msteams-selfhosted.md has a docker-compose example for MS Teams gateway. All content in this PR is net-new.
四問框架
1. 解決什麼問題
New users lack a quick-start path to run OpenAB locally with multiple agents. Currently they must manually configure each component by reading chart templates and config.toml.example.
2. 怎麼解決
Adds a complete example/ directory with docker-compose.yml, two agent configs (kiro + claude), character personality files (Jiraiya + Sasuke), and a step-by-step EXAMPLE.md guide.
3. 考慮過什麼
Uses existing published container images (ghcr.io/openabdev/openab:latest and openab-claude:latest). Volume mounts for persistence. Separate config per agent.
4. 最佳方案嗎
The approach is sound but has several issues (see below).
🟢 INFO
- Net-new value: first docker-compose quick-start for the project
- Character personalities (Jiraiya/Sasuke) are fun and demonstrate AGENTS.md/CLAUDE.md customization
- Clear separation of kiro vs claude config files
- EXAMPLE.md covers auth flow for both agents
🟡 NIT
-
Volume paths are wrong —
docker-compose.ymlmounts./example/data/home/agent:/home/agentbut the compose file itself lives insideexample/. If you rundocker-compose upfromexample/, the path should be./data/home/agent:/home/agent. If run from repo root, it should bedocker compose -f example/docker-compose.yml upand the paths need adjusting. -
Missing newline at EOF —
docker-compose.yml,CLAUDE.md, andMEMORY.mdare missing trailing newlines (POSIX compliance). -
.gitignoreremovesconfig.tomlglobally — The PR removes theconfig.tomlline from.gitignore(the-1deletion). This means the rootconfig.toml(user's actual config with bot tokens) would no longer be gitignored. This is a security risk — users could accidentally commit their bot tokens. The intent was probably to trackexample/data/config/*/config.tomlwhile keeping rootconfig.tomlignored. -
No
.envor env var approach for secrets — The config.toml files haveREPLACE_WITH_YOUR_DISCORD_BOT_TOKENplaceholders. Consider using${DISCORD_BOT_TOKEN}env var interpolation (which OpenAB already supports) + a.env.examplefile, matching the pattern inconfig.toml.example. -
EXAMPLE.md references
docker-compose(v1) — The project's other docs usedocker compose(v2 plugin syntax). Should be consistent. -
Character files have prompt injection protection rules — The "Absolute Confidentiality Rules" for
~/.kiroin both character files are example-specific and could confuse users who copy-paste them. Consider simplifying or noting these are optional personality examples.
🔴 SUGGESTED CHANGES
-
Merge conflict — PR status is CONFLICTING. Needs rebase onto current main.
-
.gitignoreregression — Removingconfig.tomlfrom root.gitignoreis dangerous. Fix: keepconfig.tomlin root.gitignoreand add specific!example/data/config/*/config.tomlexceptions. -
Volume path mismatch — The docker-compose volume paths assume running from repo root but the file lives in
example/. Pick one convention and document it clearly in EXAMPLE.md.
Problem / Motivation
Currently, there is no easy way for users to quickly set up and test OpenAB with both Kiro and Claude agents. Users need to manually configure each component, understand the directory structure, and set up Discord bot integrations without clear guidance.
What This PR Does
This PR provides a complete, ready-to-use example setup that:
Benefits
Files Added
example/docker-compose.yml- Docker Compose orchestrationexample/EXAMPLE.md- Complete usage guideexample/data/config/kiro/config.toml- Kiro agent configuration templateexample/data/config/claude/config.toml- Claude agent configuration templateexample/data/home/agent/.kiro/steering/IDENTITY.md- Jiraiya character definitionexample/data/home/agent/.kiro/steering/MEMORY.md- Kiro memory fileexample/data/home/node/.claude/CLAUDE.md- Sasuke character definitionexample/data/home/node/.claude/MEMORY.md- Claude memory file.gitignoreto track example configuration files